home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_procmail.idb / usr / freeware / catman / u_man / cat1 / lockfile.Z / lockfile
Encoding:
Text File  |  1998-10-28  |  9.5 KB  |  266 lines

  1. /xlv1/freeware/1998.Oct/procmail/3.11pre7/procmail-3.11pre7.diffbuild/new
  2.  
  3.  
  4.  
  5.      LLLLOOOOCCCCKKKKFFFFIIIILLLLEEEE((((1111))))       BBBBuuuuGGGGlllleeeessssssss ((((1111999999997777////00004444////11111111))))           LLLLOOOOCCCCKKKKFFFFIIIILLLLEEEE((((1111))))
  6.  
  7.  
  8.  
  9.      NNNNAAAAMMMMEEEE
  10.       lockfile - conditional semaphore-file    creator
  11.  
  12.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.       lllloooocccckkkkffffiiiilllleeee ----_s_l_e_e_p_t_i_m_e |    ----rrrr _r_e_t_r_i_e_s |
  14.            ----llll _l_o_c_k_t_i_m_e_o_u_t |    ----ssss _s_u_s_p_e_n_d | ----!!!!    | ----mmmmllll |    ----mmmmuuuu | _f_i_l_e_n_a_m_e
  15.       ...
  16.  
  17.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  18.       lllloooocccckkkkffffiiiilllleeee can be used to create one or    more _s_e_m_a_p_h_o_r_e    _f_i_l_e_s.
  19.       If  lockfile    can't  create  all the specified files (in the
  20.       specified order), it waits _s_l_e_e_p_t_i_m_e (defaults to 8) seconds
  21.       and  retries    the  last  file     that didn't succeed.  You can
  22.       specify the  number  of  _r_e_t_r_i_e_s  to    do  until  failure  is
  23.       returned.   If  the  number  of _r_e_t_r_i_e_s is -1    (default, i.e.
  24.       ----rrrr----1111)    lockfile will retry forever.
  25.  
  26.       If the number    of _r_e_t_r_i_e_s expires before all files have  been
  27.       created,  lockfile returns failure and removes all the files
  28.       it created up    till that point.
  29.  
  30.       The return value of  lockfile     can  be  easily  inverted  by
  31.       specifying  ----!!!!  as  an  argument  (comes  in    handy in shell
  32.       scripts).
  33.  
  34.       All flags can    be specified anywhere  on  the    command     line,
  35.       they    will  be processed when    encountered.  The command line
  36.       is simply parsed from    left to    right.
  37.  
  38.       All  files  created  by  lockfile  will  be  read-only,  and
  39.       therefore will have to be removed with rrrrmmmm ----ffff.
  40.  
  41.       If you specify a _l_o_c_k_t_i_m_e_o_u_t then a lockfile will be removed
  42.       by  force  after  locktimeout     seconds have passed since the
  43.       lockfile was last  modified/created  (most  likely  by  some
  44.       other     program  that    unexpectedly died a long time ago, and
  45.       hence    could not clean    up any leftover    lockfiles).   Lockfile
  46.       is  clock skew immune.  After    a lockfile has been removed by
  47.       force, a suspension of _s_u_s_p_e_n_d seconds (defaults to  16)  is
  48.       taken     into  account,     in  order  to prevent the inadvertent
  49.       immediate removal of any newly created lockfile  by  another
  50.       program (compare SSSSUUUUSSSSPPPPEEEENNNNDDDD in pppprrrrooooccccmmmmaaaaiiiillll(1)).
  51.  
  52.     MMMMaaaaiiiillllbbbbooooxxxx    lllloooocccckkkkssss
  53.       If the permissions on    the system mail    spool directory     allow
  54.       it,  or  if  lockfile    is suitably setgid, it will be able to
  55.       lock and unlock your system mailbox by using the options ----mmmmllll
  56.       and ----mmmmuuuu respectively.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.      Page 1                         (printed 8/25/98)
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.      LLLLOOOOCCCCKKKKFFFFIIIILLLLEEEE((((1111))))       BBBBuuuuGGGGlllleeeessssssss ((((1111999999997777////00004444////11111111))))           LLLLOOOOCCCCKKKKFFFFIIIILLLLEEEE((((1111))))
  72.  
  73.  
  74.  
  75.      EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
  76.       Suppose you want to  make  sure  that     access     to  the  file
  77.       "important"  is serialised, i.e. no more than    one program or
  78.       shell     script     should     be  allowed  to   access   it.       For
  79.       simplicity's    sake, let's suppose that it is a shell script.
  80.       In this case you could solve it like this:
  81.            ...
  82.            lockfile    important.lock
  83.            ...
  84.            access_"important"_to_your_hearts_content
  85.            ...
  86.            rm -f important.lock
  87.            ...
  88.       Now if all the scripts that access "important"  follow  this
  89.       guideline,  you will be assured that at most one script will
  90.       be executing between the `lockfile' and the `rm' commands.
  91.  
  92.      EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT
  93.       LLLLOOOOGGGGNNNNAAAAMMMMEEEE         used  as  a  hint  to    determine  the
  94.                  invoker's loginname
  95.  
  96.      FFFFIIIILLLLEEEESSSS
  97.       ////eeeettttcccc////ppppaaaasssssssswwwwdddd         to   verify   and/or    correct       the
  98.                  invoker's  loginname (and to find out
  99.                  his HOME directory, if    needed)
  100.  
  101.       ////vvvvaaaarrrr////mmmmaaaaiiiillll////$$$$LLLLOOOOGGGGNNNNAAAAMMMMEEEE....lllloooocccckkkk
  102.                  lockfile for the system mailbox,  the
  103.                  environment variables present in here
  104.                  will    not   be   taken   from       the
  105.                  environment,  but  will be determined
  106.                  by looking in /etc/passwd
  107.  
  108.      SSSSEEEEEEEE AAAALLLLSSSSOOOO
  109.       rrrrmmmm(1), mmmmaaaaiiiillll(1), bbbbiiiinnnnmmmmaaaaiiiillll(1), sssseeeennnnddddmmmmaaaaiiiillll(8), pppprrrrooooccccmmmmaaaaiiiillll(1)
  110.  
  111.      DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
  112.       Filename too long, ... Use shorter filenames.
  113.  
  114.       Forced unlock    denied on "x"
  115.                  No write permission in    the  directory
  116.                  where    lockfile  "x" resides, or more
  117.                  than one lockfile trying to  force  a
  118.                  lock at exactly the same time.
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.      Page 2                         (printed 8/25/98)
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.      LLLLOOOOCCCCKKKKFFFFIIIILLLLEEEE((((1111))))       BBBBuuuuGGGGlllleeeessssssss ((((1111999999997777////00004444////11111111))))           LLLLOOOOCCCCKKKKFFFFIIIILLLLEEEE((((1111))))
  138.  
  139.  
  140.  
  141.       Forcing lock on "x"     Lockfile "x" is going to  be  removed
  142.                  by  force  because of a timeout (com-
  143.                  pare LLLLOOOOCCCCKKKKTTTTIIIIMMMMEEEEOOOOUUUUTTTT in pppprrrrooooccccmmmmaaaaiiiillll(1)).
  144.  
  145.       Out of memory, ...     The system is out of swap space.
  146.  
  147.       Signal received, ...     Lockfile  will     remove     anything   it
  148.                  created till now and terminate.
  149.  
  150.       Sorry, ...         The _r_e_t_r_i_e_s limit has been reached.
  151.  
  152.       Truncating "x" and retrying lock
  153.                  "x" does  not    seem  to  be  a     valid
  154.                  filename.
  155.  
  156.       Try praying, ...     Missing  subdirectories  or  insuffi-
  157.                  cient privileges.
  158.  
  159.      BBBBUUUUGGGGSSSS
  160.       Definitely less than one.
  161.  
  162.      MMMMIIIISSSSCCCCEEEELLLLLLLLAAAANNNNEEEEOOOOUUUUSSSS
  163.       Lockfile is NFS-resistant and    eight-bit clean.
  164.  
  165.      NNNNOOOOTTTTEEEESSSS
  166.       Calling up lockfile with the -h or -?    options    will cause  it
  167.       to display a command-line help page.
  168.  
  169.       Multiple ----!!!! flags will toggle    the return status.
  170.  
  171.       Since    flags can occur    anywhere  on  the  command  line,  any
  172.       filename starting with a '-' has to be preceded by './'.
  173.  
  174.       The number of    _r_e_t_r_i_e_s    will not be reset when    any  following
  175.       file    is  being  created (i.e. they are simply used up).  It
  176.       can, however,    be  reset  by  specifying  -r_n_e_w_r_e_t_r_i_e_s     after
  177.       every    file on    the command line.
  178.  
  179.       Although files with any name can be used as lockfiles, it is
  180.       common  practice  to use the extension `.lock' to lock mail-
  181.       folders (it is appended to the mailfolder  name).   In  case
  182.       one  does not    want to    have to    worry about too    long filenames
  183.       and does not have to conform to any other lockfilename  con-
  184.       vention,  then  an  excellent    way to generate    a lockfilename
  185.       corresponding    to some    already    existing file is by taking the
  186.       prefix  `lock.'  and appending the i-node number of the file
  187.       which    is to be locked.
  188.  
  189.      SSSSOOOOUUUURRRRCCCCEEEE
  190.       This program is part of the _p_r_o_c_m_a_i_l _m_a_i_l-_p_r_o_c_e_s_s_i_n_g-_p_a_c_k_a_g_e
  191.       (v3.11pre7  1997/04/28)  available  at  your    nearest    USENET
  192.       comp.sources.misc  archive,    or   at      ftp.informatik.rwth-
  193.  
  194.  
  195.  
  196.      Page 3                         (printed 8/25/98)
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.      LLLLOOOOCCCCKKKKFFFFIIIILLLLEEEE((((1111))))       BBBBuuuuGGGGlllleeeessssssss ((((1111999999997777////00004444////11111111))))           LLLLOOOOCCCCKKKKFFFFIIIILLLLEEEE((((1111))))
  204.  
  205.  
  206.  
  207.       aachen.de as ppppuuuubbbb////ppppaaaacccckkkkaaaaggggeeeessss////pppprrrrooooccccmmmmaaaaiiiillll////pppprrrrooooccccmmmmaaaaiiiillll....ttttaaaarrrr....ggggzzzz.
  208.  
  209.      MMMMAAAAIIIILLLLIIIINNNNGGGGLLLLIIIISSSSTTTT
  210.       There    exists a mailinglist for  questions  relating  to  any
  211.       program in the procmail package:
  212.            <procmail@informatik.rwth-aachen.de>
  213.             for    submitting questions/answers.
  214.            <procmail-request@informatik.rwth-aachen.de>
  215.             for    subscription requests.
  216.  
  217.       If you would like to stay informed about  new     versions  and
  218.       official patches send    a subscription request to
  219.            procmail-announce-request@informatik.rwth-aachen.de
  220.       (this    is a readonly list).
  221.  
  222.      AAAAUUUUTTTTHHHHOOOORRRR
  223.       Stephen R. van den Berg
  224.            <srb@cuci.nl>
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.      Page 4                         (printed 8/25/98)
  263.  
  264.  
  265.  
  266.